package com.xpc.rpc.codec;

import com.xpc.rpc.common.serialization.Serialization;
import com.xpc.rpc.serialization.jdk.JdkSerialization;
import com.xpc.rpc.spi.loader.ExtensionLoader;

/**
 * 通用接口
 */
public interface RpcCoder {

    /**
     * 获取具体的序列化接口
     * 后续会使用SPI机制进行扩展
     */
    default Serialization getJdkSerialization() {
        return new JdkSerialization();
    };


    /**
     * 根据serializationType序列化类型通过SPI获取具体的序列化方式
     * @return
     */
    default Serialization getSerialization(String serializationType) {
        return ExtensionLoader.getExtension(Serialization.class,serializationType);
    }
}
